//
//  ZKBombView.h
//  Private_Object
//
//  Created by pro on 16/9/7.
//  Copyright © 2016年 pro. All rights reserved.
//

#import <UIKit/UIKit.h>

/**
 *  枚举属性
 */
// 视图内容类型
typedef NS_ENUM(NSInteger, ZKBombContentMode) {
    ZKBombContentModeCustom,                        // 完全自定义
    ZKBombContentModePicker,                        // 选择器视图（单列）
    ZKBombContentModeDatePicker,                    // 时间选择器
};
// 视图位置类型
typedef NS_ENUM(NSInteger, ZKBombPositionMode) {
    ZKBombPositionModeBottom,                       // 底部贴屏幕最下方（弹出方式仅1）
    ZKBombPositionModeCenter,                       // 中心在屏幕中心（弹出方式三种均可以）
    ZKBombPositionModeTop,                          // 顶部贴屏幕最上方（弹出方式仅3）
};
// 视图弹出方式
typedef NS_ENUM(NSInteger, ZKBombPopMode) {
    ZKBombPopModeBottom,                            // 从下方弹出
    ZKBombPopModeCenter,                            // 从中间渐现
    ZKBombPopModeTop,                               // 从上方落下
};

/**
 *  2016.9.7 982942570@qq.com 任性不认命
 *  弹框视图内容contentView 用自己的自定义视图，利用接口传入，也可以用该view自带的直接使用
 */
@interface ZKBombView : UIButton <UIPickerViewDelegate, UIPickerViewDataSource>

@property (nonatomic, strong) UIButton *            maskView;

/**
 *  视图的位置和动画模式
 */
// 内容视图，位置不起作用（根据contentMode和popMode自动设置），bounds起作用
@property (nonatomic, strong) UIView *              contentView;
// 视图内容类型，默认是 ZKBombContentModeCustom
@property (nonatomic, assign) ZKBombContentMode     contentMode;
// 视图显示位置，默认是 ZKBombContentModeBottom
@property (nonatomic, assign) ZKBombPositionMode    positionMode;
// 视图弹出方式，默认是 ZKBombPopModeBottom
@property (nonatomic, assign) ZKBombPopMode         popMode;

/**
 *  动画效果设置
 */
// 动画时间，默认是 0.5秒
@property (nonatomic, assign) CGFloat               aniDuration;
// 弹簧效果系数，有效值（0 < ? < 1），设置为0或1都认为无弹簧效果，值越小弹性越大，默认是1
@property (nonatomic, assign) CGFloat               damping;


/**
 *  当视图内容类型为picker(单列或日期)时，用于自定义的参数，和回调的属性
 */
// 标题，默认是 空
@property (nonatomic, copy  ) NSString *            title;
// 字体，默认是 system font size 17
@property (nonatomic, strong) UIFont   *            font;
// 字体颜色，默认是 darkGrayColor
@property (nonatomic, strong) UIColor  *            titleColor;
// picker中的item 的颜色
@property (nonatomic, strong) UIColor  *            itemColor;
// picker高度，默认是 240
@property (nonatomic, assign) CGFloat               pickerHeight;
// 单列picker 数据（字符串数组）
@property (nonatomic, copy  ) NSArray  *            dataItems;
// picker row 选择后的回调
@property (nonatomic, copy  ) void(^pickerDidSelected)(NSString *text);
// date picker 选择后的回调
@property (nonatomic, copy  ) void(^datePickerDidSelected)(NSDateComponents *dateComonents);
@property (nonatomic, strong) NSDate   *            minDate;
@property (nonatomic, strong) NSDate   *            maxDate;

/**
 *  自定义时候的属性
 */
// 是否使用在自定义模式下使用picker的title
@property (nonatomic, assign) BOOL                  usePickerTitleForCustomContentMode;
@property (nonatomic, copy  ) void(^customTapOk)(void);


/**
 *  全局动作
 */
- (void)disableTapMask;
// 展示
- (void)show;
// 隐藏
- (void)remove;

@end
